home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 015 / rset.arc / TSET.PAS < prev   
Pascal/Delphi Source File  |  1986-08-12  |  5KB  |  169 lines

  1. program Toshiba_P351_Setup;
  2. {$C-}
  3.  
  4. const
  5.    BEL        = $07;
  6.    Windows    = 2;
  7.    Wtab       : array[1..Windows,1..5] of Integer
  8.                 = ((10, 14,  71, 24,  1), { X0,Y0,X1,Y1,LineNo }
  9.                    (26,  2,  54, 11,  1)
  10.                   );
  11.  
  12. var
  13.    i          : Integer;
  14.    Ch         : Char;
  15.    Command    : Char;
  16.    Col        : string[2];
  17.  
  18.    procedure Beep;
  19.    {ring the console bell}
  20.    begin
  21.      write (chr(BEL))
  22.    end;
  23.  
  24.    procedure Frame(UpperLeftX, UpperLeftY, LowerRightX, LowerRightY: Integer);
  25.    var
  26.       i: Integer;
  27.    begin
  28.       GotoXY(UpperLeftX, UpperLeftY);  Write(chr(201));
  29.       for i:=UpperLeftX+1 to LowerRightX-1 do Write(chr(205));
  30.       Write(chr(187));
  31.       for i:=UpperLeftY+1 to LowerRightY-1 do
  32.       begin
  33.          GotoXY(UpperLeftX , i);  Write(chr(186));
  34.          GotoXY(LowerRightX, i);  Write(chr(186));
  35.       end;
  36.       GotoXY(UpperLeftX, LowerRightY);
  37.       Write(chr(200));
  38.       for i:=UpperLeftX+1 to LowerRightX-1 do Write(chr(205));
  39.       Write(chr(188));
  40.    end  { Frame };
  41.  
  42.    procedure SelectWindow(Win: Integer);
  43.    begin
  44.       Window(Wtab[Win,1], Wtab[Win,2], Wtab[Win,3], Wtab[Win,4])
  45.    end  { SelectWindow };
  46.  
  47.    procedure Show_Commands;
  48.    begin
  49.      LowVideo;
  50.      SelectWindow(1);
  51.      GoToXY(1,1);
  52.      writeln('               Toshiba P351 Parameter Set Routine');
  53.      writeln('                      Available Commands');
  54.      writeln;
  55.      writeln(' <F>ormfeed                            <R>eset printer');
  56.      writeln(' <6> lines per inch                    <8> lines per inch');
  57.      writeln(' <L>ong print mode                     <D>raft print mode');
  58.      writeln(' <E>lite print mode                    <P>ica print mode');
  59.      writeln(' 1<0> characters per inch              1<2> characters/inch');
  60.      writeln(' <C>ondensed print mode                <S>top');
  61.      writeln(' <M>argin set (left)                   <B>reak pages');
  62.      write  (' <T>oshiba mode                        <I>BM Graphics mode');
  63.      SelectWindow(2);
  64.      GoToXY(1,1);
  65.    end;
  66.  
  67.    procedure GetCommand;
  68.    begin
  69.      write ('  Command: ');
  70.      repeat
  71.        read (KBD,Command);
  72.        Command := UpCase(Command);
  73.        if NOT (Command in ['F','6','8','R','L','I','T','D','E','P',
  74.                            'C','0','M','B','2','S']) then Beep
  75.      until Command in ['F','6','8','R','L','I','T','D','E','P',
  76.                        'C','0','M','B','2','S'];
  77.      case Command of
  78.        'F' : begin
  79.                writeln('Formfeed');
  80.                write(LST,chr(12))
  81.              end;
  82.        '6' : begin
  83.                writeln('6 lines per inch');
  84.                write(LST,chr(27),'L08')
  85.              end;
  86.        '8' : begin
  87.                writeln('8 lines per inch');
  88.                write(LST,chr(27),'L06')
  89.              end;
  90.        'R' : begin
  91.                writeln('Reset printer');
  92.                write(LST,chr(27),chr(26),'I')
  93.              end;
  94.        'L' : begin
  95.                writeln('Long print mode');
  96.                write(LST,chr(27),'!')
  97.              end;
  98.        'D' : begin
  99.                writeln('Draft mode');
  100.                write(LST,chr(27),'*0')
  101.              end;
  102.        'E' : begin
  103.                writeln('Elite mode');
  104.                write(LST,chr(27),'*1')
  105.              end;
  106.        'P' : begin
  107.                writeln('Pica mode');
  108.                write(LST,chr(27),'*2')
  109.              end;
  110.        'C' : begin
  111.                writeln('Condensed mode');
  112.                write(LST,chr(27),'[')
  113.              end;
  114.        'S' : begin
  115.                writeln('Stop execution');
  116.                Window(1,1,80,25);
  117.                GoToXY(1,1);
  118.                Delay (1000);
  119.                ClrScr;
  120.                Halt
  121.              end;
  122.        '0' : begin
  123.                writeln('10 cpi');
  124.                write(LST,chr(27),'E12')
  125.              end;
  126.        'M' : begin
  127.                writeln('Set left margin');
  128.                write  ('   Column: ');
  129.                readln (Col);
  130.                if length(Col) = 1
  131.                  then  Col := '0' + Col;
  132.                write (LST,chr(27),'C',Col);
  133.                write (LST,chr(27),'9')
  134.              end;
  135.        'B' : begin
  136.                writeln('Set page break');
  137.                write(LST,chr(27),'P05');
  138.                write(LST,chr(27),'+');
  139.                write(LST,chr(27),'P58');
  140.                write(LST,chr(27),'-');
  141.                write(LST,chr(12))
  142.              end;
  143.        'I' : begin
  144.                writeln('IBM Graphics on');
  145.                write(LST,chr(27),'_1')
  146.              end;
  147.        'T' : begin
  148.                writeln('Toshiba on');
  149.                write(LST,chr(27),'_0')
  150.              end;
  151.        '2' : begin
  152.                writeln('12 cpi');
  153.                write(LST,chr(27),'E10')
  154.              end
  155.      end
  156.    end;
  157.  
  158. begin
  159.   ClrScr;
  160.   for I:= 1 to Windows do
  161.      frame(Wtab[i,1]-1,Wtab[i,2]-1,Wtab[i,3]+1,Wtab[i,4]+1);
  162.   Show_Commands;
  163.   write(LST,chr(27),chr(26),'I');
  164.   Repeat
  165.     GetCommand
  166.   until FALSE
  167.  end.
  168.  
  169.